Option Explicit

Sub Arranca()
    Dim c As Coche             'Objeto tipo Coche
    Dim m As Motocicleta       'Objeto tipo Motocicleta
    Dim v As IVehiculo         'Objeto tipo IVehiculo
    Dim lv As New Collection   'Objeto tipo coleccin

    Set c = New Coche          'Inicializa objeto c de tipo Coche
    lv.Add c, "1"              'Aade objeto c con la clave "1"
    Set m = New Motocicleta    'Inicializa objeto m de tipo Motocicleta
    lv.Add m, "2"              'Aade objeto m con la clave "2"
    
    Dim a, n As Integer        'Define variables de trabajo para bucles
    For a = 1 To vueltas
        For n = 1 To lv.Count  'Cuenta elementos de la coleccin
            Set v = lv.Item(n) 'Asigna al objeto v de tipo IVehiculo el objeto de la lista
            v.mover            'Ejecuta el mtodo mover sin reparar en el tipo de objeto
        Next n
    Next a
End Sub
